home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # Only run the first time.
- if [ -f /var/lib/partman/auto_mountpoints ]; then
- exit 0
- fi
- [ -d /var/lib/partman ] || mkdir /var/lib/partman
- touch /var/lib/partman/auto_mountpoints
-
- . /lib/partman/lib/base.sh
-
- db_get partman/automount
- if [ "$RET" = false ]; then
- exit 0
- fi
-
- if type udevadm >/dev/null 2>&1; then
- udevinfo () {
- udevadm info "$@"
- }
- fi
-
- partitions=
- for dev in $DEVICES/*; do
- [ -d "$dev" ] || continue
- cd $dev
- open_dialog PARTITIONS
- while { read_line num id size type fs path name; [ "$id" ]; }; do
- if udevinfo -q env -n "$path" 2>/dev/null | egrep -q 'ID_PATH=(pci-[^-]*-)?(ieee1394|usb)'; then
- continue
- fi
- [ -f $id/detected_filesystem ] || continue
- fs=$(cat $id/detected_filesystem)
- if [ "$name" ]; then
- mountpoint="$(/usr/lib/partconf/mountpoint "$path" "$fs" "$name")"
- else
- mountpoint="$(/usr/lib/partconf/mountpoint "$path" "$fs")"
- fi
- if [ "$mountpoint" ]; then
- partitions="$partitions
- $dev,$id,$fs,$mountpoint"
- fi
- done
- close_dialog
- done
-
- IFS_SAVE="$IFS"
- IFS='
- '
- for part in $partitions; do
- IFS="$IFS_SAVE"
- dev="${part%%,*}"
- cdr="${part#*,}"
- id="${cdr%%,*}"
- cdr="${cdr#*,}"
- fs="${cdr%%,*}"
- mountpoint="${cdr#*,}"
-
- [ -d "$dev/$id" ] || continue
-
- if [ -f "$dev/$id/method" ]; then
- method="$(cat $dev/$id/method)"
- if [ "$method" ]; then
- # Already used for something else.
- continue
- fi
- fi
-
- echo keep >"$dev/$id/method"
- rm -f "$dev/$id/format"
- >"$dev/$id/use_filesystem"
- echo "$fs" >"$dev/$id/filesystem"
- mkdir -p "$dev/$id/options"
- echo "$mountpoint" >"$dev/$id/mountpoint"
-
- update_partition "$dev" "$id"
-
- IFS='
- '
- done
- IFS="$IFS_SAVE"
-